<?php


use Swoole\Coroutine as co;

$ws = new swoole_websocket_server('172.17.0.2',9503,SWOOLE_BASE);
//$tcp = $ws->addlistener("172.17.0.2", 9501, SWOOLE_SOCK_TCP);
//$web = $ws->addlistener("172.17.0.2", 9501, SWOOLE_SOCK_TCP);
//$ws->set(['reactor_num'=>4,'worker_num'=>4]);



$ws->on('WorkerStart', function ($ws, $worker_id) { 

	echo $worker_id;
	go(function () {
    $client = new Swoole\Coroutine\Http\Client("172.17.0.2", 9503);
    $ret = $client->upgrade("/");
    echo 'end';
    //print_r($client);
    //print_r($ret);
    if ($ret) {
        while(true) {

        	//



            $client->push("hello");
            
            co::sleep(300);
        }
    }
});
	//print_r($worker_id);
	//print_r($ws);
   	//echo 1;
	// go(function(){
	// 	sleep(1);
 //    	echo 't';
 //    });
 //   	//print_r($ws);
 //   	//echo $worker_id;
 //   	//定时任务 
 //    // if ($worker_id == 1) { 
	//    //  swoole_timer_tick(3000, function ($timer_id) { 
	//    //  	echo "tick-2000ms\n";
	//    //  });
 //    // }
 //   	$ws->defer(function(){
 //        echo 's';
 //    });

//if ($worker_id==1) {



// $client = new swoole_client(SWOOLE_SOCK_TCP);

// //连接到服务器
// if (!$client->connect('127.0.0.2', 9501, 0.5))
// {
//     die("connect failed.");
// }
// //向服务器发送数据
// if (!$client->send("hello world"))
// {
//     die("send failed.");
// }
// //从服务器接收数据
// $data = $client->recv();
// if (!$data)
// {
//     die("recv failed.");
// }
// echo $data;
// //关闭连接
// $client->close();



		// if (!$client->send("hello world"))
		// {
		//     die("send failed.");
		// }
		// $socket = new Co\Socket(AF_INET, SOCK_STREAM, 0);
		// $retval = $socket->connect('172.17.0.2', 9501);
		// go(function () use ($socket) {
		    
		//     while ($retval)
		//     {
		//         $n = $socket->send("hello");
		//         print_r($n);

		//         // $data = $socket->recv();
		//         // var_dump($data);

		//         // if (empty($data)) {//发生错误或对端关闭连接，本端也需要关闭
		//         //     $socket->close();
		//         //     break;
		//         // }
		//         //co::sleep(1.0);
		//     }
	 //    //var_dump($retval, $socket->errCode);
		// });

		// $client = new swoole_client(SWOOLE_SOCK_UDP, SWOOLE_SOCK_SYNC);
		// $client->connect('172.17.0.2', 9501);
		// $client->send("admin");
		// echo $client->recv();



//}

});

// $web->onss(){

// 	$ws->push()

// }


$ws->on('connect',function($ws,$id){
	//echo 2;
	//echo $id;
	//状态 
	//print_r($ws->stats());
});

//监听WebSocket连接打开事件 (这里会得到很多信息)
$ws->on('open',function($ws,$request){
	//echo 3;
	//print_r($request);
	//用户序号  fd

});

$ws->on("message",function($ws,$frame){
	print_r($ws);
	echo 'start';
	// global $group_con_map;
	// $group_con_map = $frame;
	// $ws->push($frame->fd, "server: {$frame->data}");

	//print_r($ws->connections);

	//echo 4;	
	// foreach ($ws->connections as  $value) {
	// 	print_r($value);
	// 	$ws->push($value, "server:$frame->data");
	// }
	//print_r($frame);
	
	// $fdinfo = $ws->getClientInfo($frame->fd);
	// print_r($fdinfo);
 
	// print_r($ws->connections);
});

$ws->on('close', function ($ws, $fd) {
    echo "client-{$fd} is closed\n";
});



// $tcp->on('receive', function ($serv, $fd, $from_id, $data) {
//    	print_r($data);
//       //$serv->send($fd, "Server: ".$data);
// });





$ws->start();